﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using JXT.PrimaryKey.Batman.Collections;
using JXT.PrimaryKey.Batman.Domain.Services;
using JXT.PrimaryKey.Batman.Domain.Specifications;
using JXT.PrimaryKey.Batman.Domain.VirtualExchange.Models;
using JXT.PrimaryKey.Batman.Domain.Quotation.Models;

namespace JXT.PrimaryKey.Batman.Domain.VirtualExchange.Services
{
    public interface ISecuritiesDetailService : ICachedService
    {
        void Add(SecuritiesDetail entity);

        void AddList(IEnumerable<SecuritiesDetail> list, Action<TaskExecutedStatus> updateAction = null);

        void Delete(SecuritiesDetail entity);

        int Count(DateTime time);

        SecuritiesDetail GetSingle(int id);

        SecuritiesDetail GetSingle(ISpecification<SecuritiesDetail> specification);

        IPagedCollection<SecuritiesDetail> GetList(IPagedSpecification<SecuritiesDetail> specification);

        IEnumerable<SecuritiesDetail> GetListByHoldingCount(int pageSize, int pageIndex, SecuritiesType securitiesType, MarketType marketType = MarketType.Hongkong);

        IEnumerable<SecuritiesDetail> GetListByHoldingAccountCount(int pageSize, int pageIndex, SecuritiesType securitiesType, MarketType marketType = MarketType.Hongkong);
      
    }
}
